home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
011
/
brutil.arc
/
KEYSEND.ASM
< prev
next >
Wrap
Assembly Source File
|
1988-05-02
|
2KB
|
116 lines
DATA SEGMENT AT 40H
ORG 1AH
BUFFER_HEAD DW ?
BUFFER_TAIL DW ?
KB_BUFFER DW 16 DUP(?)
KB_BUFFER_END DW ?
DATA ENDS
CODE SEGMENT PARA PUBLIC
ASSUME CS:CODE,DS:CODE
ORG 100H
START: MOV DI,OFFSET KBFR
MOV SI,81H
SUB BX,BX
LOOP5: PUSH BX
SUB BX,BX
SUB DX,DX
LOOP6: LODSB
CMP AL,'"'
JZ LOOP9
CMP AL,' '
JZ LOOP7
CMP AL,13
JZ LOOP8
CMP AL,'0'
JC L5ERR
CMP AL,'9'+1
JC L5OK
AND AL,5FH
CMP AL,'A'
JC L5ERR
CMP AL,'G'
JNC L5ERR
SUB AL,7
L5OK: AND AL,15
INC BX
ROL DX,1
ROL DX,1
ROL DX,1
ROL DX,1
OR DL,AL
JMP LOOP6
LOOP9: LODSB
CMP AL,'"'
JZ LOOP10
CMP AL,13
JZ LOOP11
LOOP13: SUB AH,AH
INC BX
STOSW
JMP LOOP9
LOOP10: CMP AL,[SI]
JZ LOOP12
MOV AX,BX
POP BX
ADD BX,AX
JMP LOOP5
LOOP11: MOV AX,BX
POP BX
ADD BX,AX
MOV AX,13
STOSW
INC BX
JMP SHORT EXIT
LOOP12: LODSB
JMP LOOP13
LOOP7: OR BX,BX
JZ LOOP6
POP BX
MOV AX,DX
STOSW
INC BX
JMP LOOP5
LOOP8: OR BX,BX
POP BX
JZ EXIT
MOV AX,DX
STOSW
INC BX
JMP SHORT EXIT
L5ERR: POP BX
RET
EXIT: MOV SI,OFFSET KBFR
MOV CX,BX
MOV AX,40H
MOV DS,AX
ASSUME DS:DATA
MOV BX,BUFFER_TAIL
CLI
PUSH CX
LOOP2: LODS CS:KBFR
MOV [BX],AX
INC BX
INC BX
CMP BX,OFFSET KB_BUFFER_END
JNE LOOP3
MOV BX,OFFSET KB_BUFFER
LOOP3: MOV BUFFER_TAIL,BX
LOOP LOOP2
STI
MOV AX,CS
MOV DS,AX
POP CX
LOOP4: PUSH CX
MOV AH,2
MOV DL,13
INT 21H
POP CX
LOOP LOOP4
RET
KBFR DW 16 DUP(0)
CODE ENDS
END START
OP CX
LOOP4: PUSH CX
MOV AH,2
MOV